package com.zx.crowdfunding.mapper;

import com.zx.crowdfunding.entity.Admin;
import com.zx.crowdfunding.entity.AdminExample;
import java.util.List;
import org.apache.ibatis.annotations.Param;

public interface AdminMapper {
    int countByExample(AdminExample example);

    int deleteByExample(AdminExample example);

    int deleteByPrimaryKey(Integer id);

    int insert(Admin record);

    int insertSelective(Admin record);

    List<Admin> selectByExample(AdminExample example);

    Admin selectByPrimaryKey(Integer id);

    int updateByExampleSelective(@Param("record") Admin record, @Param("example") AdminExample example);

    int updateByExample(@Param("record") Admin record, @Param("example") AdminExample example);

    int updateByPrimaryKeySelective(Admin record);

    int updateByPrimaryKey(Admin record);
    
    /**
     * 根据关键字模糊查询（登录账号或昵称或邮件地址）
     * @param keyword 关键字
     * @return 管理员对象列表
     */
    List<Admin> selectByKeyword(String keyword);

	/**
	 * 根据管理员id删除管理员与角色的关联关系数据
	 * @param adminId 管理员id
	 */
	void deleteAdminRoleRelationship(Integer adminId);

	/**
	 * 添加管理员与角色的关联关系数据
	 * @param adminId 管理员id
	 * @param roleIdList 角色id的List集合
	 */
	void insertAdminRoleRelationship(@Param("adminId") Integer adminId, @Param("roleIdList") List<Integer> roleIdList);
}